"===============================================================
"настройка менеджера палгинов Bundle
"===============================================================
"autocmd GUIEnter * simalt ~x
set langmenu=ru_RU.UTF-8
set nocompatible
filetype off
set rtp+=C:\Users\verdandi\vimfiles\bundle\vundle
call vundle#rc()
"настройка плагинов
"Репозитории vim-scripts
Bundle 'https://github.com/Valloric/YouCompleteMe'
Bundle 'https://github.com/scrooloose/nerdtree'
Bundle 'https://github.com/scrooloose/nerdcommenter'
Bundle 'https://github.com/SirVer/ultisnips'
"Bundle 'buftabs'
"Bundle 'https://github.com/jlanzarotta/bufexplorer'
"Bundle 'bufexplorer'
"Bundle 'minibufexpl.vim'
"Bundle 'a.vim'
filetype plugin indent on
"===============================================================

"===============================================================
"пользовательские настройки vim
"===============================================================
set nocompatible "несовместимость с vi
set number "номер строчки слева
set tabstop=4 "количество пробелов для табуляции
set shiftwidth=4 "Количество пробелов на которое изменяется ширина отступа, при использовании команд изменения отступа << и >>
set softtabstop=4 "количество пробелов добавляемое при нажатии tab
set backspace=indent,eol,start whichwrap+=<,>,[,] "функции клавиши backspace
set foldenable "сворачивание текста
set foldmethod=syntax "сворачивать по синтаксису
set foldnestmax=1
set smartindent "умные отступы
set cin "отступы в стиле С
syntax on "включить подсветку синтаксиса
set encoding=utf-8 "кодировка файла
"set completeopt=menu,menuone
"set undofile "создавать файлы с filename.un~ для возможности отката изменений даже после закрытия и повторного открытия файла
set list "включение показа непечатаемых символов
set listchars=tab:▸·,eol:¬,precedes:«,extends:» "настраиваем чем конкретно показывать эти самые непечатаемые символы;)
set showmatch 
set hlsearch
set incsearch
set ignorecase
set guioptions-=T "убрать тулбар в gvim
set guioptions-=m "убрать меню в gvim
colorscheme desert-warm-256 "цветовая схема
set guifont=Lucida_Console:h11 "шрифт
set makeprg=mingw32-make "выбор программы которую запускает команда make
"set autochdir "автоматическая смена текущей рабочей директории
"autocmd BufEnter * silent! lcd %:p:h
set showtabline=2
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
highlight lCursor guifg=NONE guibg=Cyan
"===============================================================

"===============================================================
"Настройка горячих клавиш
"===============================================================

"отключение клавиш стрелок
noremap <Up> <NOP>
noremap <Down> <NOP>
noremap <Left> <NOP>
noremap <Right> <NOP>

"запуск cmake
imap <a-F5> <Esc>:wa<CR>:cmake -G "MinGW Makefiles"<CR>
nmap <a-F5> :wa<CR>cmake<CR>

"сборка с сохранением
imap <F5> <Esc>:wa<CR>:make<CR> 
nmap <F5> <Esc>:wa<CR>:make<CR> 
"imap <F5> <Esc>:wa<CR>:!cmake -G "MinGW Makefiles" -DCMAKE_VERBOSE_MAKEFILE=YES ..<CR>:make<CR> 
"nmap <F5> <Esc>:wa<CR>:!cmake -G "MinGW Makefiles" -DCMAKE_VERBOSE_MAKEFILE=YES ..<CR>:make<CR> 
"imap <F5> <Esc>:wa<CR>:cmake<CR>:make<CR> 
"nmap <F5> :wa<CR>:cmake<CR>:make<CR>

"запуск cmake
imap <C-F5> <Esc>:wa<CR>:!cmake -G "MinGW Makefiles" .<CR>
nmap <C-F5> :wa<CR>:!cmake -G "MinGW Makefiles" .<CR>

"открыть окно результатов компиляции
imap <F6> <Esc>:copen<CR>
nmap <F6> :copen<CR>

"следующая ошибка
imap <C-F6> <Esc>:cn<CR>i
nmap <C-F6> :cn<CR>

"предыдущая ошибка
imap <S-F6> <Esc>:cp<CR>i
nmap <S-F6> :cp<CR>

"перейти в следующую вкладку
imap <S-Tab> <Esc>:tabn<CR>
nmap <S-Tab> :tabn<CR>

"перейти на предыдущую вкладку
imap <С-Tab> <Esc>:tabp<CR>
nmap <С-S-Tab> :tabp<CR>

"включение/выключение tagbar
nnoremap <silent> <F9> :TagbarToggle<CR>

"Включение/выключение окна Project
autocmd vimenter * if !argc() | NERDTree C:\Workspace | endif
nnoremap <silent> <F8> :NERDTreeToggle C:\Workspace<CR>
"nnoremap <silent> <F8> tabnew<cr>:NERDTree<cr>
"nnoremap <silent> <cr> :NERDTreeMapOpenInTabsSilent<cr>
"/home/verdandi/Workspace<CR>

"запуск тестов
imap <F7> <Esc>:make test<cr>
nmap <F7> :make test<cr>

"автокоментарий
map <silent> <C-_> <Plug>NERDCommenterToggle<CR>

"сохранить изменения в текущем окне
imap <F3> <Esc>:w<CR>
nmap <F3> :w<CR>

"выйти
imap <F4> <Esc>:q<CR>
nmap <F4> :q<CR>

"Выйти без сохранения (не работает)
imap <C-S-F4> <Esc>:q!<CR>
nmap <C-S-F4> :q!<CR>

"Закрыть текущий буфер
imap <S-F4> <Esc>:bd<CR>
nmap <S-F4> :bd<CR>

"Переход на объявление с помощью YouCompleteMe
"imap <C-d> <Esc>:YcmCompleter GoToDeclaration
"===============================================================


"===============================================================
"настройка плагина Tagbar
"===============================================================
let g:tagbar_left = 0 "показывать окно слева
let g:tagbar_widht = 10 "ширина окна
let g:tagbar_sort = 0 "не сортировать
"===============================================================

"===============================================================
"настрока плагина bufexplorer
"===============================================================
"let g:bufExplorerShowTabBuffer=1
"===============================================================
"===============================================================
"настройка плагина minibufexpl.vim
"===============================================================
"let g:miniBufExplMapWindowNavVim = 1
"let g:miniBufExplMapWindowNavArrows = 1
"let g:miniBufExplMapCTabSwitchBufs = 1
"let g:miniBufExplModSelTarget = 1
"===============================================================

"===============================================================
"Настройка плагина NERDTree
"===============================================================
let g:NERDTreeChDirMode = 2
"===============================================================

"===============================================================
"Настройка плагина Ultisnip
"===============================================================
let g:UltiSnipsUsePythonVersion = 2
let g:UltiSnipsSnippetsDir = "C:/Users/verdandi/.vim/bundle/ultisnips/UltiSnips/"
let g:UltiSnipsSnippetDirectories = ["UltiSnips"]
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<tab>"
"===============================================================

"===============================================================
"Настройка YouCompleteMe
"===============================================================
let g:ycm_global_ycm_extra_conf = 'C:/Users/verdandi/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'
let g:ycm_key_list_select_completion = []
let g:ycm_confirm_extra_confgloblist = 0
let g:ycm_cache_omnifunc = 1
let g:ycm_autoclose_preview_window_after_completion = 1
